The present invention generally relates to a storage subsystem, and in particular relates to a storage subsystem capable of inhibiting the occurrence of a deadlock during packet communication in a network of a storage subsystem.
Efforts have been expended from the past to prevent deadlocks in a computer system. Deadlock is a status where processing of a plurality of packets competes in a communication network of a computer system, the plurality of packets mutually freeze and the processing of packets is suspended.
For instance, Japanese Patent Laid-Open Publication No. 2002-344463 describes an interactive ring network in which node apparatuses connected to a processing unit are connected in a ring shape with an interactively communicable link. In order to facilitate the changing of the routing of the packet, the node apparatus includes a disconnection point recording register for recording at which section in the network the dependence should be disconnected in order to avoid a deadlock, and determines in which direction on the interactive ring network the packet is to be sent based on the register value concerning the packet input from the processing unit.
In addition, Japanese Patent Laid-Open Publication No. 2003-30166 discloses a loosely-coupled multiprocessor system that eliminates a deadlock while preventing the deterioration in the processing efficiency of tasks This loosely-coupled multiprocessor system comprises a host group for executing a plurality of tasks while sharing a plurality of resources and a deadlock check apparatus. The deadlock check apparatus detects a deadlock that occurs as a result of one task among a plurality of tasks entering a standby status of waiting for one of the resources, and, when a deadlock is detected, selects a resource release task for releasing a locked resource among the plurality of tasks based on the progress of processing of the respective tasks, and the priority set in the respective tasks.
Furthermore, Japanese Patent Laid-Open Publication No. 2004-246439 describes a method for preventing the overall cluster system from stalling due to a deadlock between hosts configuring the cluster system. A timer monitoring means monitors the resource lock wait against the shared resource, the shared resource long-period lock check means checks the host and process that are causing the resource lock wait against the shared resource, coercively stops the process that is causing the resource lock wait against the shared resource and releases the lock of the shared resource secured by the process, coercively stops the host that is operating the process that is causing the resource lock against the shared resource, and purges the resource lock request against the shared resource locked by the host.